//有效括号序列

class Solution {
public:
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    bool isValid(string s) {
        // write code here
        stack<char> st;
        for(auto& ch:s)
        {
            if(ch == '(' || ch == '[' || ch == '{')
            {
                st.push(ch);
            }
            else //碰到右括号 
            {
                if(st.empty())
                    return false;
                char top = st.top();
                if(   top == '(' && ch  != ')' ||   top == '{' && ch != '}' \
                   || top == '[' && ch != ']' )
                    return false;
                st.pop();
            }
        }
        return st.empty();
    }
};